<p>This rule is deprecated; use {rule:vbnet:S119} instead.</p>
<h2>Why is this an issue?</h2>
<p>Shared naming conventions allow teams to collaborate efficiently. This rule checks that all generic type parameter names match a provided regular
expression.</p>
<p>The default configuration is the one recommended by Microsoft:</p>
<ul>
  <li> Must start with an upper case 'T' character, e.g. T </li>
  <li> Followed by Pascal casing, starting with an upper case character, e.g. TKey </li>
  <li> Short abbreviations of 2 letters can be capitalized, e.g. TFooID </li>
  <li> Longer abbreviations need to be lower cased, e.g. TFooHtml </li>
</ul>
<h3>Noncompliant code example</h3>
<p>With the default parameter value <code>^T(([A-Z]{1,3}[a-z0-9]+)*([A-Z]{2})?)?$</code>:</p>
<pre>
Public Class Foo(Of t) ' Noncompliant
End Class
</pre>
<h3>Compliant solution</h3>
<pre>
Public Class Foo(Of T) ' Compliant
End Class
</pre>

